﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using vudu.Presentacion.Contrato.VU_01_Gestionar_Salones;
using vudu.Logica.Fachada;
using vudu.ClasesDominio;



namespace vudu.Presentacion.Presentador.VU_01_Gestionar_Salones
{
    public class PresentadorConsultarEdificios
    {
        //Declaracion de variables
        private EnlaceLogico _fachada;
        private List <Edificio> _edificios;
        public IContratoAgregarSalon _vista;
        public IContratoModificarSalonDatos _vistaModificar;
        private Universidad _universidad;

        //Constructor para la Consulta de Edificios en el Agregar
        public PresentadorConsultarEdificios(EnlaceLogico fachada,IContratoAgregarSalon vista)
        {
            //Inicializacion del EnlaceLogico,la vista y la universidad logeada en el constructor
            _universidad = (Universidad)fachada.RolActual;
             _vista = vista;
            _fachada = fachada;
        }
        //Constructor para la Consulta de Edificios en el Modificar
        public PresentadorConsultarEdificios(EnlaceLogico fachada, IContratoModificarSalonDatos vista)
        {
            _universidad = (Universidad)fachada.RolActual;
            _vistaModificar = vista;
            _fachada = fachada;
        }

        //Metodo que consulta los edificios de una universidad
        public void ConsultarEdificios()
        {
            //Instanciamos una lista de edificios
            List<Edificio> listaEdificios = new List<Edificio>();
            //Llamamos a la fachada Logica y le pasamos el id de la Universidad logeada
            //Al final asigna a listaEdificios los edificios consultados en la Capa de Datos
            listaEdificios = _fachada.ConsultarEdificios(_universidad.IdUniv);
            //Llamamos al metodo de llenar el DownDropList de la lista de edificios consultados
            llenarDownDropList(listaEdificios);    
        }

        //Metodo que llena el DownDropList de los edificios existentes para una universidad
        public void llenarDownDropList(List<Edificio> misEdificios) 
        {
            //Se declara una lista de strings que contendra el nombre de los edificios
            List<string> Lista = new List<string>();
            Lista.Add("- Selecciona -"); 
            //Se recorre la lista de los edificios pasados en la cabecera del metodo
            for (int indiceEdificio = 0; indiceEdificio < misEdificios.Count; indiceEdificio++)
            {
                //Se agrega cada uno de los edificios de la lista de Edificios a la lista de strings
                Lista.Add(misEdificios[indiceEdificio].Nombre);
            }
            //Se cambia en la vista el contenido del DownDropList
            _vista.EdificioSalon.DataSource = Lista;
            _vista.EdificioSalon.DataBind();
        }

        public void llenarListaEdificioModificar()
        {
            List<string> Lista = new List<string>();
            List<Edificio> listaEdificios = new List<Edificio>();
            listaEdificios = _fachada.ConsultarEdificios(_universidad.IdUniv);

            foreach (Edificio edificio in listaEdificios)
            {
                Lista.Add(edificio.Nombre);
            }
            _vistaModificar.ComboEdificio.DataSource = Lista;
            _vistaModificar.ComboEdificio.DataBind();
            _vistaModificar.ComboEdificio.Visible = true;
            _vistaModificar.ComboTipoSalon.Visible = true;

            Lista = null;
            
        }

    }
}